package com.kakarote.oa.service;


import com.kakarote.core.common.enums.FieldEnum;
import com.kakarote.core.servlet.BaseService;
import com.kakarote.oa.entity.BO.OaFieldVerifyBO;
import com.kakarote.oa.entity.PO.OaLogTemplateField;
import com.kakarote.oa.entity.VO.OaLogTemplateFieldVO;

import java.util.List;
import java.util.Map;

/**
 * @author wanli
 * 针对表【wk_oa_log_template_field(市场活动字段信息表)】的数据库操作Service
 * @date 2022-07-04 18:07:03
 */
public interface IOaLogTemplateFieldService extends BaseService<OaLogTemplateField> {

    /**
     * 保存日志模板的字段信息
     *
     * @param id        主键ID
     * @param fieldList 字段列表
     */
    void saveField(Long id, List<OaLogTemplateField> fieldList);

    List<OaLogTemplateField> list(Long configId, boolean isQueryHide);

    List<List<OaLogTemplateField>> queryFormPositionField(Long configId, boolean isQueryHide);

    List<List<OaLogTemplateFieldVO>> queryFormPositionFieldVO(Long configId, Long logId);

    /**
     * 查询日志模板的表单字段
     *
     * @param configId 日志模板配置id
     * @return 字段信息
     */
    List<OaLogTemplateFieldVO> queryField(Long configId, Long logId);


    List<OaLogTemplateFieldVO> information(Long id, Long categoryId);

    /**
     * TODO 由于模块不方便互通， 使用sql查询企业的跟进记录的字段配置
     *
     * @return
     */
    List<OaLogTemplateFieldVO> queryActivityFields();

    /**
     * 日志列表查询日志字段列表
     *
     * @param categoryIds ids
     * @return data
     * @author zhangzhiwei
     */
    Map<Long, List<OaLogTemplateFieldVO>> queryConfigMap(List<Long> categoryIds);

    void recordToFormType(OaLogTemplateFieldVO record, FieldEnum typeEnum);

    /**
     * 查询导出字段
     *
     * @param categoryId
     * @return
     */
    List<OaLogTemplateFieldVO> queryExportFields(Long categoryId);

    OaFieldVerifyBO verify(OaFieldVerifyBO fieldVerifyBO);
}
